1. Field of the Invention
The present invention relates to a packet multiplexer or a packet switch that accommodates TCP/IP traffic in particular, and to improvement by enabling the coexistence of transfer of best effort services and transfer of traffic services that require delay quality.
2. Description of the Related Art
Conventionally, a transfer device, which represents the first tier in introducing a packet line from a subscriber into the trunk network, has been implemented as a multiplexer. Conventional packet multiplexers are mainly used as leased circuits, with which some means of quality assurance, including congestion control and error control, are provided. One well-known example of congestion control for conventional packet switching networks is the technique disclosed in Japanese Patent Laying-Open (Kokai) No. Heisei 7-79253.
This technique measures transmission delay based on a packet requesting measurement of transmission delay, which is sent from a source, and the corresponding packet acknowledging measurement of transmission delay, which is sent from the switch back to the source, and attempts to reduce network congestion by giving higher priority in processing to packets with greater delays and by causing sources with smaller delays to reduce the number of packets that they send.
Meanwhile, as the construction of TCP/IP-based networks has been actively promoted in recent years, demand has arisen for the integration of sound/image transfer services that require delay quality, in addition to conventional best effort TCP/IP traffic. In order to meet such demand, such techniques as weighed round robin and weighed fair queuing for controlling reading from a queue having multiple priorities have been proposed and/or realized. These control techniques determine the next packet to read, based on the number of packets already read from the queue.
Conventional packet multiplexers, however, do not provide guarantee that packet delay will be limited within a desired range; this very often has led to the problem that some packets may suffer from significant delay in arrival, resulting in failure to transfer realtime information with sufficient quality, which is essential to sound/image transfer services. In the case of the technique disclosed in the above-mentioned official gazette as well, packet switches do not guarantee different delays for different flows; this has led to the problem that packets do not arrive in sequence when transmitted sound and/or images are being reconstructed, giving rise to complaints among users about quality.
An objective of the present invention is to resolve the problems described above by providing a packet multiplexer that enables the coexistence of transfer of best effort services and transfer of traffic services that require delay quality.
Another objective of the present invention is to provide a packet multiplexer that enables delay time guarantee, which has not been achieved in conventional priority control methods that allocate packets to queues with different priorities simply based on the lengths of packets.
Yet another objective of the present invention is to provide a packet multiplexer that enables to discard illegal packets incoming from the subscriber or lower the read priority of such packets, thereby enabling efficient use of transmission bandwidths within the network.
According to one aspect of the invention, a packet multiplexer, comprises
an input processing means for setting an output time limit value in the input packet and for measuring the sizes of packets in question and converting the measurements to values in terms of processing times corresponding to these sizes,
a first storing means for storing the packets,
a second storing means for storing the order in which these packets are to be output according to the order in which they are received,
an attribute storing means for storing the output time limit value and sizes of the packets that are calculated by the input processing means, and
a read controlling means for comparing the first entry and the following entry as to the output time limit values and sizes that are stored in the second attribute storing means and then selecting a packet to output so that the packets will be output in decreasing order of size within the range in which the output time limit values will meet the delay time limit values.
In the preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
and a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size.
In another preferred construction, the read controlling means selects a packet signal by giving priority to those packets that will time out.
In another preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
and a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size, wherein
the read controlling means
selects a packet signal by giving priority to those packets that will time out.
In another preferred construction, the input processing means has an integration table for adding up the packet sizes, wherein
the read controlling means
discards the contents stored in the first storing means, second storing means, and attribute storing means if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size,
an integration table for adding up the packet sizes, wherein
the read controlling means
discards the contents stored in the first storing means, second storing means, and attribute storing means if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means has an integration table for adding up the packet sizes, wherein
the read controlling means
selects a packet signal by giving priority to those packets that will time out,
and discards the contents stored in the first storing means, second storing means, and attribute storing means if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size,
and an integration table for adding up the packet sizes, wherein
the read controlling means
selects a packet signal by giving priority to those packets that will time out,
and discards the contents stored in the first storing means, second storing means, and attribute storing means if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means has an integration table for adding up the packet sizes, wherein
the read controlling means
sets the output time limit value for the packet that is stored in the attribute storing means to the maximum if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size,
and an integration table for adding up the packet sizes, wherein
the read controlling means
sets the output time limit value for the packet that is stored in the attribute storing means to the maximum if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means has an integration table for adding up the packet sizes, wherein
the read controlling means
selects a packet signal by giving priority to those packets that will time out,
and sets the output time limit value for the packet that is stored in the attribute storing means to the maximum if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the input processing means further comprises
an attribute table for storing the delay time limit values,
a time stamp generating means for calculating an output time limit value based on the delay time limit value and the time required for the packet to arrive,
a size measuring means for measuring the size of the packet and converting the result into a value in terms of processing time corresponding to this size,
and an integration table for adding up the packet sizes, wherein
the read controlling means
selects a packet signal by giving priority to those packets that will time out,
and sets the output time limit value for the packet that is stored in the attribute storing means to the maximum if the integrated value in the integration table exceeds the threshold.
In another preferred construction, the first storing means consists of
a high-priority queue for storing the output order in which the delay-guaranteed packet that should be output earlier is to be output,
and a low-priority queue for storing the output order in which the non-delay-guaranteed packet is to be output, wherein
the read controlling means
whenever the packets exist in the high-priority queue, gives output priority to such packets.
In another preferred construction, the first storing means consists of
a high-priority queue for storing the output order in which the delay-guaranteed packet that should be output earlier is to be output,
and a low-priority queue for storing the output order in which the non-delay-guaranteed packet is to be output, wherein
the read controlling means
selects from the packets stored in the high-priority queue by giving priority to packet signals that will time out,
and selects from the packets stores in the low-priority queue in sequence from the first packet.
According to another aspect of the invention, a packet multiplexer, comprises
an input processing unit which sets an output time limit value in the input packet and measures the sizes of packets in question and converts the measurements to values in terms of processing times corresponding to these sizes,
a storing memory which stores the packets,
a queue which stores the order in which these packets are to be output according to the order in which they are received,
an attribute storing memory which stores the output time limit value and sizes of the packets that are calculated by the input processing unit,
and a read controlling unit which compares the first entry and the following entry as to the output time limit values and sizes that are stored in the second attribute storing memory and then selects a packet to output so that the packets will be output in decreasing order of size within the range in which the output time limit values will meet the delay time limit values.
Other objects, features and advantages of the present invention will become clear from the detailed description given herebelow.